#ifndef HOUSE_HEADER
#define HOUSE_HEADER

#include <string>
#include "GenericPlayer.h"
#include "Player.h"
#include "Deck.h"


class House : public GenericPlayer {
public:
	// constructor and destructor
	House(const std::string name, const std::vector<Player *> players, Deck *deck);
	~House();
	//Deals two cards two everybody at the table including itself
	//uses DealTwoCardsToOnePlayer and DealTwoCardsToItself methods inside
	void DealFirstRound();
	//Prints a question if the player wants an other card
	void askIfWantsOneCard(Player *onePlayer);
	//Deals ane card to a player
	void dealOneCardToOnePlayer(Player *onePLayer);
	//deals one card to itself
	void dealOneCardToItself();
	//checks if the house is still hitting
	//is hitting true if belove 17 points
	bool isHitting() const;

	//Deals two cards to a player
	void DealTwoCardsToOnePlayer(Player *onePlayer);
	//deals two cards to itself
	void DealTwoCardsToItself();
	//Sets the visibility of the first card of itself to true
	void showLastCard();
	//Gets the name of the house
	std::string GetName() const;

protected:
	Deck *deck;
	std::string houseName;
	std::vector<Player *> players;
};

#endif